perm filename FORMAT[W81,JMC] blob
sn#575330 filedate 1981-03-26 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 Some principles for text formatting languages
C00006 ENDMK
Cā;
Some principles for text formatting languages
This note is based on experience using TEX, PUB and SCRIBE.
Each uses a string in a limited alphabet ASCII to describe a document.
This may be compared with attempts to produce an on-line language
obeying the principle of "what you see is what you get" like BRAVO.
I think the former has been and his likely to be more successful, because
the work of formatting has to be done separately for
each formula, table or other difficult entity requiring special display.
Making systematic changes in display format is difficult.
Let us carry the principle farther, and propose the following:
1. The main text should be as little cluttered as possible
by expressions determining format and typography.
2. This can be accomplished almost entirely by conventions for
what we shall call labelled bracketing. For example, a segment of
text may be written as in TEX {\foo The quick brown fox jumps over
the lazy dog.}. The meaning of \foo is determined by "macros" better
called "formats" in the header of a block. Naturally, the brackets
need to be nestable. In this example, \foo is the label of the
bracket. It seems that almost all the special conventions adopted
for identifying font changes, tabulation, display, and mathematical
formulas can be subsumed under this one convention.
3. The previous point illustrates a TEX convention for
labelled bracketing, but there is no difficulty in making a text
parser that will recognize any reasonable conventions. This means that
the same text can be processed by different text formatters, since
the conventions for labelled bracketing shouldn't be fixed.
4. PUB's ability to be a programming language is useful and
should be allowed. TEX users have to program, but have to stand on
their heads to do it. LISP programming would be even more powerful
than the ALGOL-like programming of PUB, because LISP's ability to use
the language to produce more text in the language is valuable in
the context of text processing. On the other hand, SCRIBE's ability
to modify formats incrementally rather than by reprogramming (the
properties of which I don't yet understand well) is also desirable.
Both can be achieved in the same system.
5. The other valuable feature of SCRIBE is its ability to
move text around according to format. It uses this feature to produce
bibliographies in the formats of different journals from a single
master form of bibliography.